package l1j.opqlo.List;

import static l1j.server.server.model.item.L1ItemId.POTION_OF_HEALING;
import static l1j.server.server.model.item.L1ItemId.CONDENSED_POTION_OF_HEALING;
import static l1j.server.server.model.item.L1ItemId.POTION_OF_EXTRA_HEALING;
import static l1j.server.server.model.item.L1ItemId.CONDENSED_POTION_OF_EXTRA_HEALING;
import static l1j.server.server.model.item.L1ItemId.POTION_OF_GREATER_HEALING;
import static l1j.server.server.model.item.L1ItemId.CONDENSED_POTION_OF_GREATER_HEALING;
import static l1j.server.server.model.item.L1ItemId.C_POTION_OF_HEALING;
import static l1j.server.server.model.item.L1ItemId.B_POTION_OF_EXTRA_HEALING;
import static l1j.server.server.model.item.L1ItemId.B_POTION_OF_GREATER_HEALING;
import static l1j.server.server.model.item.L1ItemId.RABBIT_LIVER;
import static l1j.server.server.model.item.L1ItemId.B_POTION_OF_HEALING;
import static l1j.server.server.model.skill.L1SkillId.ADDITIONAL_FIRE;
import static l1j.server.server.model.skill.L1SkillId.AWAKEN_ANTHARAS;
import static l1j.server.server.model.skill.L1SkillId.AWAKEN_FAFURION;
import static l1j.server.server.model.skill.L1SkillId.AWAKEN_VALAKAS;
import static l1j.server.server.model.skill.L1SkillId.BOUNCE_ATTACK;
import static l1j.server.server.model.skill.L1SkillId.COUNTER_BARRIER;
import static l1j.server.server.model.skill.L1SkillId.DRAGON_SKIN;
import static l1j.server.server.model.skill.L1SkillId.FOE_SLAYER;
import static l1j.server.server.model.skill.L1SkillId.ILLUSION_AVATAR;
import static l1j.server.server.model.skill.L1SkillId.ILLUSION_DIA_GOLEM;
import static l1j.server.server.model.skill.L1SkillId.ILLUSION_LICH;
import static l1j.server.server.model.skill.L1SkillId.ILLUSION_OGRE;
import static l1j.server.server.model.skill.L1SkillId.INSIGHT;
import static l1j.server.server.model.skill.L1SkillId.MIRROR_IMAGE;
import static l1j.server.server.model.skill.L1SkillId.PANIC;
import static l1j.server.server.model.skill.L1SkillId.PATIENCE;
import static l1j.server.server.model.skill.L1SkillId.REDUCTION_ARMOR;
import static l1j.server.server.model.skill.L1SkillId.SHOCK_STUN;
import static l1j.server.server.model.skill.L1SkillId.SOLID_CARRIAGE;
import static l1j.server.server.model.skill.L1SkillId.SOUL_OF_FLAME;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

import l1j.server.server.model.Instance.L1PcInstance;

public class 特殊列表 {


	private static final HashMap<Integer , Integer>真武器防具升級 = new HashMap<Integer , Integer>();
	private static final HashMap<Integer, Integer> _雪人升級機率 = new HashMap<Integer, Integer>();
	private static final HashMap<Integer, Integer> _飛龍升級機率 = new HashMap<Integer, Integer>();
	private static final HashMap<Integer, Integer> _女妖升級機率 = new HashMap<Integer, Integer>();
	private static final HashMap<Integer, int[]> _補品列表 = new HashMap<Integer, int[]>();
	private static final HashMap<Integer, Integer>_性別外觀 = new HashMap<Integer , Integer>();
	private static final HashMap<Integer, String>地圖正名 = new HashMap<Integer , String>();
	private static final int[][] _武器轉換列表 = {
		{ 255552, // 6階武器兌換幣
			620, // 六階單手劍
			621, // 六階雙手劍
			622, // 六階弓
			623, // 六階杖
			624, // 六階雙刀
			625, // 六階鎖鏈劍
			626, // 六階奇古獸
			639 // 六階鐵手甲

		}, { 255553, // 7階武器兌換幣
			627, // 七階單手劍
			628, // 七階雙手劍
			629, // 七階弓
			630, // 七階杖
			631, // 七階雙刀
			632, // 七階鎖鏈劍
			633, // 七階奇古獸
			640 // 七階鐵手甲
			
		}, { 255554, // 8階武器兌換幣
			641, // 八階單手劍
			642, // 八階雙手劍
			643, // 八階弓
			644, // 八階杖
			645, // 八階雙刀
			646, // 八階鎖鏈劍
			647, // 八階奇古獸
			648 // 八階鐵手甲
			
		}, { 255555, // 9階武器兌換幣
			649, // 九階單手劍
			650, // 九階雙手劍
			651, // 九階弓
			652, // 九階杖
			653, // 九階雙刀
			654, // 九階鎖鏈劍
			655, // 九階奇古獸
			656 // 九階鐵手甲
			
		}, { 255556, // 傳說武器兌換幣
			657, // 傳說單手劍
			658, // 傳說雙手劍
			659, // 傳說弓
			660, // 傳說杖
			661, // 傳說雙刀
			662, // 傳說鎖鏈劍
			663, // 傳說奇古獸
			664 // 傳說鐵手甲
			
		}, { 255557, // 逆戰武器兌換幣
			665, // 逆戰單手劍
			666, // 逆戰雙手劍
			667, // 逆戰弓
			668, // 逆戰杖
			669, // 逆戰雙刀
			670, // 逆戰鎖鏈劍
			671, // 逆戰奇古獸
			672 // 逆戰鐵手甲
			
		},{255558, //破塔武器兌換幣
			673	,	//	破塔單手劍
			674	,	//	破塔雙手劍
			675	,	//	破塔弓
			676	,	//	破塔杖
			677	,	//	破塔雙刀
			678	,	//	破塔鎖鏈劍
			679	,	//	破塔奇古獸
			680		//	破塔鐵手甲
		},{
			0,//墊編號
			681	,//	真-破塔單手劍
			682	,//	真-破塔雙手劍
			683	,//	真-破塔弓
			684	,//	真-破塔杖
			685	,//	真-破塔雙刀
			686	,//	真-破塔鎖鏈劍
			687	,//	真-破塔奇古獸
			688	//	真-破塔鐵手甲
		},{
			0,//墊編號
			689	,//	極-破塔單手劍
			690	,//	極-破塔雙手劍
			691	,//	極-破塔弓
			692	,//	極-破塔杖
			693	,//	極-破塔雙刀
			694	,//	極-破塔鎖鏈劍
			695	,//	極-破塔奇古獸
			696	//	極-破塔鐵手甲
		},{
			0,//墊編號
			697	,//	殞鳳單手劍
			698	,//	殞鳳雙手劍
			699	,//	殞鳳弓
			700	,//	殞鳳杖
			701	,//	殞鳳雙刀
			702	,//	殞鳳鎖鏈劍
			703	,//	殞鳳奇古獸
			704	//	殞鳳鐵手甲
		},{	
			0,//墊編號
			697	,//	殞鳳單手劍
			698	,//	殞鳳雙手劍
			699	,//	殞鳳弓
			700	,//	殞鳳杖
			701	,//	殞鳳雙刀
			702	,//	殞鳳鎖鏈劍
			703	,//	殞鳳奇古獸
			704	//	殞鳳鐵手甲
		},{		
			0,//墊編號
			705	,//	真-殞鳳單手劍
			706	,//	真-殞鳳雙手劍
			707	,//	真-殞鳳弓
			708	,//	真-殞鳳杖
			709	,//	真-殞鳳雙刀
			710	,//	真-殞鳳鎖鏈劍
			711	,//	真-殞鳳奇古獸
			712	//	真-殞鳳鐵手甲
		},{	
			0,//墊編號
			713	,//	極-殞鳳單手劍
			714	,//	極-殞鳳雙手劍
			715	,//	極-殞鳳弓
			716	,//	極-殞鳳杖
			717	,//	極-殞鳳雙刀
			718	,//	極-殞鳳鎖鏈劍
			719	,//	極-殞鳳奇古獸
			720	//	極-殞鳳鐵手甲
		}		



	};
	private static 特殊列表 _instance;

	public static 特殊列表 get() {
		if (_instance == null) {
			_instance = new 特殊列表();
		}
		return _instance;
	}

	public static int get武器轉換編號(final int ItemId, final int type) {
		for (final int[] firstList : _武器轉換列表) {
			for (final int nextItem : firstList) {
				if (ItemId == nextItem) {
					return firstList[type];
				}
			}
		}
		return 0;
	}

	public int get雪人升級機率(final int itemid) {
		int chance = 0;
		if (_雪人升級機率.get(itemid) != null) {
			chance = _雪人升級機率.get(itemid);
		}
		return chance;
	}

	public int get飛龍升級機率(final int itemid) {
		int chance = 0;
		if (_飛龍升級機率.get(itemid) != null) {
			chance = _飛龍升級機率.get(itemid);
		}
		return chance;
	}

	public int get女妖升級機率(final int itemid) {
		int chance = 0;
		if (_女妖升級機率.get(itemid) != null) {
			chance = _女妖升級機率.get(itemid);
		}
		return chance;
	}

	public int[] get補品列表(final int itemid) {

		if (_補品列表.get(itemid) != null) {
			return _補品列表.get(itemid);
		}
		return null;
	}

	public int get真武器防具升級(final int itemid){
		final Integer nextId = 真武器防具升級.get(itemid);
		if(nextId == null){
			return 0;
		}
		return nextId;
	}

	private int[] BowGFX = // TODO 追加3.4新變身補上三重矢判斷
		{ 138, 37, 3860, 3126, 3420, 2284, 3105, 3145, 3148, 3151, 3871, 4125,
			2323, 3892, 3895, 3898, 3901, 4917, 4918, 4919, 4950, 6087, 6140,
			6145, 6150, 6155, 6160, 6269, 6272, 6275, 6278, 6826, 6827, 6836,
			6837, 6846, 6847, 6856, 6857, 6866, 6867, 6876, 6877, 6886, 6887,
			8842, 8845, 9225, 9226, 8719, 8900, 8913, 9214, 371, 2445, 2446,
			2447, 7959, 2448, 2449 };

	private static final Set<Integer>_bowgfx = new HashSet<Integer>();
	private static final Set<Integer>_except_counter_magic = new HashSet<Integer>();
	private static final HashMap<Integer , Integer>_strunsec = new HashMap<Integer , Integer>();

	/**可以使用三重矢的變身**/
	public boolean getBowGFX(final int gfx){
		return _bowgfx.contains(gfx);
	}
	/**取得衝暈秒數*/
	public HashMap<Integer , Integer> getSturnSEC(){
		return _strunsec;
	}

	public String getMapName(final int mapid){
		String name = 地圖正名.get(mapid);
		if(name == null){
			name = String.valueOf(mapid);
		}
		return name;
	}


	private int[] 衝暈秒數 = { 500, 1500, 1550, 1600, 1650, 1700,
			1750, 1800, 1850, 1900, 1950, 2000, 2050, 2100, 2150, 2200, 2250,
			2300, 2350, 2400, 2450, 2500, 2550, 2600, 2650, 2700, 2750, 2800,
			2850, 2900, 2950, 3000, 3050, 3100, 3150, 3200, 3250, 3300, 3350,
			3400, 3450, 3500, 3550, 3600, 3650, 3700, 3750, 3800, 3850, 3900,
			3950, 4000, 4050, 4100, 4150, 4200, 4250, 4300, 4350, 4400, 4450,
			4500, 4550, 4600, 4650, 4700, 4750, 4800, 4850, 4900, 4950, 5000 };

	/**魔法屏障不可抵擋的魔法*/
	public boolean isExceptMagic(final int skillId){
		return _except_counter_magic.contains(skillId);
	}

	// 魔法屏障不可抵擋的魔法
	private int[] EXCEPT_COUNTER_MAGIC = { 1, 2, 3, 5, 8, 9, 12,
			13, 14, 19, 21, 26, 31, 32, 35, 37, 42, 43, 44, 48, 49, 52, 54, 55,
			57, 60, 61, 63, 67, 68, 69, 72, 73, 75, 78, 79, SHOCK_STUN,
			REDUCTION_ARMOR, BOUNCE_ATTACK, SOLID_CARRIAGE, COUNTER_BARRIER,
			97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 109, 110, 111, 113,
			114, 115, 116, 117, 118, 129, 130, 131, 132, 134, 137, 138, 146,
			147, 148, 149, 150, 151, 155, 156, 158, 159, 161, 163, 164, 165,
			166, 168, 169, 170, 171, SOUL_OF_FLAME, ADDITIONAL_FIRE,
			DRAGON_SKIN, FOE_SLAYER, AWAKEN_ANTHARAS, AWAKEN_FAFURION,
			AWAKEN_VALAKAS, MIRROR_IMAGE, ILLUSION_OGRE, ILLUSION_LICH,
			PATIENCE, 10026, 10027, ILLUSION_DIA_GOLEM, INSIGHT, PANIC,
			ILLUSION_AVATAR, 10028, 10029 };

	public int getClassId(final int gfx){
		return _性別外觀.get(gfx);

	}


	public void load() {
		for(final int gfx : BowGFX){
			_bowgfx.add(gfx);
		}
		BowGFX = null;
		for(int count =0; count<衝暈秒數.length; count++){
			_strunsec.put(count , 衝暈秒數[count]);
		}
		衝暈秒數 = null;
		for(final int skill : EXCEPT_COUNTER_MAGIC){
			_except_counter_magic.add(skill);
		}
		EXCEPT_COUNTER_MAGIC = null;
		真武器防具升級.put(new Integer(	673	) , new Integer(	681	));//	真-破塔單手劍
		真武器防具升級.put(new Integer(	674	) , new Integer(	682	));//	真-破塔雙手劍
		真武器防具升級.put(new Integer(	675	) , new Integer(	683	));//	真-破塔弓
		真武器防具升級.put(new Integer(	676	) , new Integer(	684	));//	真-破塔杖
		真武器防具升級.put(new Integer(	677	) , new Integer(	685	));//	真-破塔雙刀
		真武器防具升級.put(new Integer(	678	) , new Integer(	686	));//	真-破塔鎖鏈劍
		真武器防具升級.put(new Integer(	679	) , new Integer(	687	));//	真-破塔奇古獸
		真武器防具升級.put(new Integer(	680	) , new Integer(	688	));//	真-破塔鐵手甲
		真武器防具升級.put(new Integer(	681	) , new Integer(	689	));//	極-破塔單手劍
		真武器防具升級.put(new Integer(	682	) , new Integer(	690	));//	極-破塔雙手劍
		真武器防具升級.put(new Integer(	683	) , new Integer(	691	));//	極-破塔弓
		真武器防具升級.put(new Integer(	684	) , new Integer(	692	));//	極-破塔杖
		真武器防具升級.put(new Integer(	685	) , new Integer(	693	));//	極-破塔雙刀
		真武器防具升級.put(new Integer(	686	) , new Integer(	694	));//	極-破塔鎖鏈劍
		真武器防具升級.put(new Integer(	687	) , new Integer(	695	));//	極-破塔奇古獸
		真武器防具升級.put(new Integer(	688	) , new Integer(	696	));//	極-破塔鐵手甲
		真武器防具升級.put(new Integer(	697	) , new Integer(	705	));//	真-殞鳳單手劍
		真武器防具升級.put(new Integer(	698	) , new Integer(	706	));//	真-殞鳳雙手劍
		真武器防具升級.put(new Integer(	699	) , new Integer(	707	));//	真-殞鳳弓
		真武器防具升級.put(new Integer(	700	) , new Integer(	708	));//	真-殞鳳杖
		真武器防具升級.put(new Integer(	701	) , new Integer(	709	));//	真-殞鳳雙刀
		真武器防具升級.put(new Integer(	702	) , new Integer(	710	));//	真-殞鳳鎖鏈劍
		真武器防具升級.put(new Integer(	703	) , new Integer(	711	));//	真-殞鳳奇古獸
		真武器防具升級.put(new Integer(	704	) , new Integer(	712	));//	真-殞鳳鐵手甲
		真武器防具升級.put(new Integer(	705	) , new Integer(	713	));//	極-殞鳳單手劍
		真武器防具升級.put(new Integer(	706	) , new Integer(	714	));//	極-殞鳳雙手劍
		真武器防具升級.put(new Integer(	707	) , new Integer(	715	));//	極-殞鳳弓
		真武器防具升級.put(new Integer(	708	) , new Integer(	716	));//	極-殞鳳杖
		真武器防具升級.put(new Integer(	709	) , new Integer(	717	));//	極-殞鳳雙刀
		真武器防具升級.put(new Integer(	710	) , new Integer(	718	));//	極-殞鳳鎖鏈劍
		真武器防具升級.put(new Integer(	711	) , new Integer(	719	));//	極-殞鳳奇古獸
		真武器防具升級.put(new Integer(	712	) , new Integer(	720	));//	極-殞鳳鐵手甲
		真武器防具升級.put(new Integer(	800045	) , new Integer(	800050	));//	真-破塔頭盔
		真武器防具升級.put(new Integer(	800046	) , new Integer(	800051	));//	真-破塔盔甲
		真武器防具升級.put(new Integer(	800047	) , new Integer(	800052	));//	真-破塔手套
		真武器防具升級.put(new Integer(	800048	) , new Integer(	800053	));//	真-破塔長靴
		真武器防具升級.put(new Integer(	800050	) , new Integer(	800054	));//	極-破塔頭盔
		真武器防具升級.put(new Integer(	800051	) , new Integer(	800055	));//	極-破塔盔甲
		真武器防具升級.put(new Integer(	800052	) , new Integer(	800056	));//	極-破塔手套
		真武器防具升級.put(new Integer(	800053	) , new Integer(	800057	));//	極-破塔長靴
		真武器防具升級.put(new Integer(	870079	) , new Integer(	870087	));//	真-殞鳳頭盔
		真武器防具升級.put(new Integer(	870080	) , new Integer(	870088	));//	真-殞鳳盔甲
		真武器防具升級.put(new Integer(	870081	) , new Integer(	870089	));//	真-殞鳳手套
		真武器防具升級.put(new Integer(	870082	) , new Integer(	870090	));//	真-殞鳳長靴
		真武器防具升級.put(new Integer(	870087	) , new Integer(	870091	));//	極-殞鳳頭盔
		真武器防具升級.put(new Integer(	870088	) , new Integer(	870092	));//	極-殞鳳盔甲
		真武器防具升級.put(new Integer(	870089	) , new Integer(	870093	));//	極-殞鳳手套
		真武器防具升級.put(new Integer(	870090	) , new Integer(	870094	));//	極-殞鳳長靴




		_雪人升級機率.put(new Integer(780053), new Integer(70));
		_雪人升級機率.put(new Integer(780054), new Integer(60));
		_雪人升級機率.put(new Integer(780055), new Integer(50));
		_雪人升級機率.put(new Integer(780056), new Integer(40));
		_雪人升級機率.put(new Integer(780057), new Integer(30));
		_雪人升級機率.put(new Integer(780058), new Integer(20));
		_雪人升級機率.put(new Integer(780059), new Integer(10));
		_雪人升級機率.put(new Integer(780060), new Integer(10));
		_雪人升級機率.put(new Integer(780061), new Integer(10));
		_雪人升級機率.put(new Integer(780062), new Integer(10));

		_飛龍升級機率.put(new Integer(	780087	), new Integer(	50	));
		_飛龍升級機率.put(new Integer(	780088	), new Integer(	40	));
		_飛龍升級機率.put(new Integer(	780089	), new Integer(	30	));
		_飛龍升級機率.put(new Integer(	780090	), new Integer(	20	));
		_飛龍升級機率.put(new Integer(	780091	), new Integer(	15	));
		_飛龍升級機率.put(new Integer(	780092	), new Integer(	10	));
		_飛龍升級機率.put(new Integer(	780093	), new Integer(	10	));
		_飛龍升級機率.put(new Integer(	780094	), new Integer(	10	));
		_飛龍升級機率.put(new Integer(	780095	), new Integer(	10	));

		_女妖升級機率.put(new Integer(	780097	), new Integer(	50	));
		_女妖升級機率.put(new Integer(	780098	), new Integer(	40	));
		_女妖升級機率.put(new Integer(	780099	), new Integer(	30	));
		_女妖升級機率.put(new Integer(	780100	), new Integer(	20	));
		_女妖升級機率.put(new Integer(	780101	), new Integer(	15	));
		_女妖升級機率.put(new Integer(	780102	), new Integer(	10	));
		_女妖升級機率.put(new Integer(	780103	), new Integer(	10	));
		_女妖升級機率.put(new Integer(	780104	), new Integer(	10	));
		_女妖升級機率.put(new Integer(	780105	), new Integer(	10	));


		_補品列表.put(new Integer(B_POTION_OF_EXTRA_HEALING), new int[] { 55, 194 });
		_補品列表.put(new Integer(40022), new int[] { 20, 189 });
		_補品列表.put(new Integer(40023), new int[] { 30, 194 });
		_補品列表.put(new Integer(40024), new int[] { 55, 197 });
		_補品列表.put(new Integer(40026), new int[] { 25, 189 });
		_補品列表.put(new Integer(40027), new int[] { 25, 189 });
		_補品列表.put(new Integer(40028), new int[] { 25, 189 });
		_補品列表.put(new Integer(40029), new int[] { 15, 189 });
		_補品列表.put(new Integer(40058), new int[] { 30, 189 });
		_補品列表.put(new Integer(40071), new int[] { 70, 197 });
		_補品列表.put(new Integer(40734), new int[] { 50, 189 });
		_補品列表.put(new Integer(41298), new int[] { 4, 189 });
		_補品列表.put(new Integer(41299), new int[] { 15, 194 });
		_補品列表.put(new Integer(41300), new int[] { 35, 197 });
		_補品列表.put(new Integer(41337), new int[] { 85, 197 });
		_補品列表.put(new Integer(41403), new int[] { 300, 198 });
		_補品列表.put(new Integer(41411), new int[] { 10, 189 });
		_補品列表.put(new Integer(41417), new int[] { 90, 197 });
		_補品列表.put(new Integer(41418), new int[] { 90, 197 });
		_補品列表.put(new Integer(41419), new int[] { 90, 197 });
		_補品列表.put(new Integer(41420), new int[] { 90, 197 });
		_補品列表.put(new Integer(41421), new int[] { 90, 197 });
		_補品列表.put(new Integer(780014), new int[] { 350, 197 });
		_補品列表.put(new Integer(780032), new int[] { 1000, 198 });
		_補品列表.put(new Integer(780033), new int[] { 350, 189 });
		_補品列表.put(new Integer(780034), new int[] { 700, 189 });
		_補品列表.put(new Integer(780037), new int[] { 700, 189 });
		_補品列表.put(new Integer(78048), new int[] { 700, 189 });
		_補品列表.put(new Integer(B_POTION_OF_GREATER_HEALING),
				new int[] { 85, 197 });
		_補品列表.put(new Integer(B_POTION_OF_HEALING), new int[] { 25, 189 });
		_補品列表.put(new Integer(C_POTION_OF_HEALING), new int[] { 10, 189 });
		_補品列表.put(new Integer(CONDENSED_POTION_OF_EXTRA_HEALING), new int[] {
			45, 194 });
		_補品列表.put(new Integer(CONDENSED_POTION_OF_GREATER_HEALING), new int[] {
			75, 197 });
		_補品列表.put(new Integer(CONDENSED_POTION_OF_HEALING),
				new int[] { 15, 189 });
		_補品列表.put(new Integer(POTION_OF_EXTRA_HEALING), new int[] { 45, 194 });
		_補品列表.put(new Integer(POTION_OF_GREATER_HEALING), new int[] { 75, 197 });
		_補品列表.put(new Integer(POTION_OF_HEALING), new int[] { 15, 189 });
		_補品列表.put(new Integer(RABBIT_LIVER), new int[] { 1500, 189 });
		_補品列表.put(new Integer(780049), new int[] { 350, 189 });// 拐杖糖
		_補品列表.put(new Integer(780052), new int[] { 700, 189 });// 聖誕大餐



		_性別外觀.put(L1PcInstance.CLASSID_PRINCE,  L1PcInstance.CLASSID_PRINCESS);//王族
		_性別外觀.put( L1PcInstance.CLASSID_PRINCESS, L1PcInstance.CLASSID_PRINCE);//公主

		_性別外觀.put(L1PcInstance.CLASSID_ELF_MALE, L1PcInstance.CLASSID_ELF_FEMALE);//男騎
		_性別外觀.put(L1PcInstance.CLASSID_ELF_FEMALE, L1PcInstance.CLASSID_ELF_MALE);//女騎

		_性別外觀.put(L1PcInstance.CLASSID_KNIGHT_MALE,  L1PcInstance.CLASSID_KNIGHT_FEMALE);//男妖
		_性別外觀.put( L1PcInstance.CLASSID_KNIGHT_FEMALE, L1PcInstance.CLASSID_KNIGHT_MALE);//女妖

		_性別外觀.put(L1PcInstance.CLASSID_WIZARD_MALE, L1PcInstance.CLASSID_WIZARD_FEMALE);//男法
		_性別外觀.put(L1PcInstance.CLASSID_WIZARD_FEMALE, L1PcInstance.CLASSID_WIZARD_MALE);//女法

		_性別外觀.put(L1PcInstance.CLASSID_DARK_ELF_MALE, L1PcInstance.CLASSID_DARK_ELF_FEMALE);//男黑妖
		_性別外觀.put(L1PcInstance.CLASSID_DARK_ELF_FEMALE, L1PcInstance.CLASSID_DARK_ELF_MALE);//女黑妖

		_性別外觀.put(L1PcInstance.CLASSID_DRAGON_KNIGHT_MALE, L1PcInstance.CLASSID_DRAGON_KNIGHT_FEMALE);//男龍騎
		_性別外觀.put(L1PcInstance.CLASSID_DRAGON_KNIGHT_FEMALE, L1PcInstance.CLASSID_DRAGON_KNIGHT_MALE);//女龍騎

		_性別外觀.put(L1PcInstance.CLASSID_ILLUSIONIST_MALE, L1PcInstance.CLASSID_ILLUSIONIST_FEMALE);//男幻術
		_性別外觀.put(L1PcInstance.CLASSID_ILLUSIONIST_FEMALE, L1PcInstance.CLASSID_ILLUSIONIST_MALE);//女幻術

		地圖正名.put( 1784 , "神恩主城" );
		地圖正名.put( 612 , "寵物區" );
		地圖正名.put( 8012 , "三色戒指區" );
		地圖正名.put( 5200 , "古代精靈之塔" );
		地圖正名.put( 6051 , "地獄深淵" );
		地圖正名.put( 1011 , "高階皮帶區" );
		地圖正名.put( 9901 , "黑暗洞穴" );
		地圖正名.put( 6801 , "歡樂谷" );
		地圖正名.put( 9916 , "失落之境" );
		地圖正名.put( 611 , "一階團練特區" );
		地圖正名.put( 8015 , "新手區" );
		地圖正名.put( 7100 , "(掛)惡夢谷" );
		地圖正名.put( 4301 , "(掛)失落之境" );
		地圖正名.put( 9991 , "[一階]武防區" );
		地圖正名.put( 9992 , "[二階]武防區" );
		地圖正名.put( 9993 , "[三階]武防區" );
		地圖正名.put( 9994 , "[四階]武防區" );
		地圖正名.put( 9995 , "[五階]武防區" );
		地圖正名.put( 9921 , "[六階]武防特區" );
		地圖正名.put( 9920 , "[七階]武防特區" );
		地圖正名.put( 1017 , "(掛)[七階]武防區" );
		地圖正名.put( 7795 , "(掛)[八階]武防區" );
		地圖正名.put( 9918 , "[九階]武防區" );
		地圖正名.put( 9919 , "[八階]武防區" );
		地圖正名.put( 9917 , "(掛)[九階]武防區" );
		地圖正名.put( 9914 , "傳說島嶼" );
		地圖正名.put( 9913 , "(掛)傳說島嶼" );
		地圖正名.put( 9915 , "狼族墓穴" );
		地圖正名.put( 9900 , "(掛)狼族墓穴" );
		地圖正名.put( 6321 , "羅馬競技場" );
		地圖正名.put( 9922 , "死幽谷" );
		地圖正名.put( 9923 , "廢棄礦場" );
		地圖正名.put( 5805 , "萬能藥水區" );
		地圖正名.put( 9990 , "魔法特區" );
		地圖正名.put( 604 , "水之領域" );
		地圖正名.put( 605 , "火之領域" );
		地圖正名.put( 606 , "風之領域" );
		地圖正名.put( 607 , "地之領域" );


	}

}
